/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelos;

import Entidades.EstadoLicencia;
import Entidades.Licencia;
import Expertos.ConvertirFechas;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author diego
 */
public class ModeloTablaLicencias extends AbstractTableModel {

    private List<Licencia> licencias = new ArrayList<Licencia>();

    @Override
    public String getColumnName(int column) {
        return nombresColumnas[column];//super.getColumnName(column); //To change body of generated methods, choose Tools | Templates.
    }
    private String nombresColumnas[] = {"Apellido", "Nombre", "N° Lic.", "Tipo Lic.", "Inicio", "Fin", "Estado", "Motivo"};

    public Licencia getLicencia(int row) {
        return licencias.get(row);
    }

    @Override
    public int getRowCount() {
        return licencias.size();
    }

    @Override
    public int getColumnCount() {
        return nombresColumnas.length;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        Object obj = null;
        Object obj2 = null;
        Licencia lic = licencias.get(rowIndex);
        switch (columnIndex) {
            case 0:
                obj = lic.getIdEmpleado().getApellido();
                break;
            case 1:
                obj = lic.getIdEmpleado().getNombre();
                break;
            case 2:
                obj = lic.getNumeroLicencia();
                break;
            case 3:
                obj = lic.getIdtipoLicencia().getDescripcion();
                break;
            case 4:
                obj = ConvertirFechas.fechaAString(lic.getFechaInicioLicencia());
                break;
            case 5:
                obj = ConvertirFechas.fechaAString(lic.getFechaFinLicencia());
                break;
            case 6:
                List<EstadoLicencia> estadoLicenciaCollection = lic.getEstadoLicenciaCollection();
                for (EstadoLicencia estadoLicencia : estadoLicenciaCollection) {
                    if (estadoLicencia.getNombreEstado() != null) {
                        obj = estadoLicencia.getNombreEstado();
                    }
                }
                break;
            case 7:
                obj = obj2;
                List<EstadoLicencia> estadoLicenciaCollection2 = lic.getEstadoLicenciaCollection();
                for (EstadoLicencia estadoLicencia : estadoLicenciaCollection2) {
                    if (estadoLicencia.getNombreEstado() != null) {
                        obj = estadoLicencia.getObservacion();
                    }
                }
                break;
        }
        return obj;
    }

    public void setList(List<Licencia> lista) {
        licencias = lista;
        fireTableDataChanged();
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;//super.isCellEditable(rowIndex, columnIndex); //To change body of generated methods, choose Tools | Templates.
    }
}